DMA controllers are used in computer systems for moving blocks of data from one location to another location. Consequently, the system processor is relieved of the need to generate a long sequence of addresses to accomplish the transfer of data. Typically, the data transferred is a large block of data that begins at a source address and is moved to a destination beginning at a destination address. The DMA controller is started by an event responsive to which the DMA controller generates addresses of a source location and of a destination location wherein data is transferred.
FIG. 4A is a block diagram of an exemplary DMA controller coupled to an input/output (I/O) device. The DMA controller is coupled to the I/O device via a request signal line and an acknowledge signal line. Typically, the I/O device requests the service of the DMA controller by asserting the request signal line. In response, the DMA controller asserts the acknowledge signal line when the DMA controller is able to service the device.
However, before the acknowledge is transmitted and data is transferred to (or from) the I/O device, the system processor, or other bus master, must typically set up the DMA transfer parameters and mode of operations by writing directly to the control registers of the controller. Therefore, the processor is required to update the registers prior to each subsequent transfer. Using the system processor to continuously set up the DMA controller is not efficient. As a result, a more efficient system and method for executing DMA transfers is desired.